package cn.aws360.boot.wechat.api.pojo.request;

import cn.aws360.boot.base.api.validation.ValidationGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @author junnan
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("微信语料-写入实例")
public class WxmCorpusWrite {

    @ApiModelProperty(value = "语料 ID, 修改时为必传")
    @NotNull(message = "语料 id 不能为空", groups = {ValidationGroup.edit.class})
    private Integer id;

    @ApiModelProperty(value = "应用 ID", required = true)
    @NotBlank(message = "微信应用 appId 不能为空", groups = {ValidationGroup.add.class, ValidationGroup.edit.class})
    private String appId;

    @ApiModelProperty(value = "语料标签", required = true)
    @NotBlank(message = "语料标签 tags 不能为空", groups = {ValidationGroup.add.class, ValidationGroup.edit.class})
    private String tags;

    @ApiModelProperty(value = "输入内容", required = true)
    @NotBlank(message = "输入内容 input 不能为空", groups = {ValidationGroup.add.class, ValidationGroup.edit.class})
    private String input;

    @ApiModelProperty(value = "输出类型", required = true)
    @NotNull(message = "输出类型 outType 不能为空", groups = {ValidationGroup.add.class, ValidationGroup.edit.class})
    private Integer outType;

    @ApiModelProperty(value = "输出级别", required = true)
    @NotNull(message = "输出级别 outLevel 不能为空", groups = {ValidationGroup.add.class, ValidationGroup.edit.class})
    private Integer outLevel;

    @ApiModelProperty(value = "输出文本内容")
    private String outDetail;

    @ApiModelProperty(value = "输出媒体 ID")
    private String outMediaId;

    @ApiModelProperty(value = "输出媒体链接")
    private String outMediaUrl;

    @ApiModelProperty(value = "输出媒体图片")
    private String outMediaPic;

    @ApiModelProperty(value = "输出媒体标题")
    private String outMediaTitle;

    @ApiModelProperty(value = "输出媒体描述")
    private String outMediaDescription;

}
